home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_bas / apbsu106 / start.asi < prev    next >
Text File  |  1992-01-29  |  19KB  |  915 lines

  1. start:
  2.  
  3. rem This version of START.COM is for the ApBASIC 1.7 Support Disk.
  4.  
  5. rem It requires approximately 68K of available RAM.
  6.  
  7. rem First, initialize the Esc key.  This is necessary when using parameters,
  8. rem because the menus are bypassed at first, which is where the Esc key would 
  9. rem otherwise be itialized.
  10.  
  11. b$=chr$(27)
  12.  
  13. rem Next, initialize the space bar.
  14.  
  15. e$=chr$(32)
  16.  
  17. rem Here is the routine for reading parameters from the DOS prompt.
  18.  
  19. a$=command$
  20. if a$=" /?" then help:
  21. if a$=" /v" then listfile:
  22. if a$=" /V" then listfile:
  23. if a$=" /r" then readfile:
  24. if a$=" /R" then readfile:
  25. if a$=" /p" then printdoc:
  26. if a$=" /P" then printdoc:
  27. if a$=" /d" then donation:
  28. if a$=" /D" then donation:
  29. if a$=" /40" then option40:
  30. if a$=" /40 ?" then help40:
  31. if a$=" /40 v" then listfl40:
  32. if a$=" /40 V" then listfl40:
  33. if a$=" /40 r" then rdfile40:
  34. if a$=" /40 R" then rdfile40:
  35. if a$=" /40 p" then prfile40:
  36. if a$=" /40 P" then prfile40:
  37. if a$=" /40 d" then donate40:
  38. if a$=" /40 D" then donate40:
  39.  
  40. rem If no parameters, begin from the beginning.
  41.  
  42. cls
  43. print "                       The ApBASIC 1.7 Support Disk 1.00"
  44. print
  45. print
  46. print "                                by Matt Roberts"
  47. print "                               3 Cedar St., # 8"
  48. print "                           Montpelier, Vt 05602-3006"
  49. print "                                 (802)223-2553"
  50. print
  51. print
  52. print "If you have trouble using this disk, and the documentation doesn't"
  53. print "seem to help, you can call between 9AM and 9PM EST, and I'll try to"
  54. print "help.  Keep trying."
  55. print
  56. print
  57. print "If you find the files on this disk useful, a donation of $5.00 would"
  58. print "be greatly appreciated."
  59. print
  60. print "Of course, if there's work by other authors on the disk, the $5.00"
  61. print "doesn't cover them.  Thanks for your understanding."
  62. print
  63. print
  64. print "Press any key to continue. ";
  65. gosub continue:
  66.  
  67. options:
  68. cls
  69. print "You have the following options:"
  70. print
  71. print
  72. print "F1- View a list of the files on this disk."
  73. print
  74. print "F2- View the text file of your choice, on the screen."
  75. print
  76. print "F3- Print the text file of your choice."
  77. print
  78. print "F4- Shell to DOS."
  79. print
  80. print "F5- Change to 40-column mode (larger text; probably most useful for"
  81. print "the visually impaired)."
  82. print
  83. print "F6- See a list of the parameters you can use from the DOS prompt."
  84. print
  85. print "Esc- Return to DOS."
  86. print
  87. print
  88. print "Please press the key corresponding to your choice. ";
  89.  
  90. wait1:
  91. gosub continue:
  92. if a$=b$ then finish:
  93. if extended=1 then readext:
  94. goto wait1:
  95.  
  96. rem This routine reads the keyboard, accepting only F1-F6 and the Esc key as
  97. rem valid inputs.
  98.  
  99. readext:
  100. if a$=";" then listfile:
  101. if a$="<" then readfile:
  102. if a$="=" then printdoc:
  103. if a$=">" then shell:
  104. if a$="?" then option40:
  105. if a$="@" then help:
  106. goto wait1:
  107.  
  108. rem Here is the routine for seeing a list of the files on this disk.
  109.  
  110. listfile:
  111. cls
  112. print "Here are the files on this disk:"
  113. print
  114. print
  115. print "DARKSCRN.BAS- The ApBASIC 1.7 source code for DARKSCRN.EXE."
  116. print
  117. print "DARKSCRN.EXE- A screen blanker, used from the DOS prompt."
  118. print
  119. print "DISPLAY.BAS- An ApBASIC module to display text files on the screen."
  120. print
  121. print "FILE-MAN.BAS- The ApBASIC 1.7 source code for FILE-MAN.EXE."
  122. print
  123. print "FILE-MAN.DOC- The documentation for FILE-MAN.EXE."
  124. print
  125. print "FILE-MAN.EXE- The ApBASIC 1.7 File Manager."
  126. print
  127. print "LIST.COM- A neat utility by Vern Buerg; displays files on the screen."
  128. print
  129. print "LOOSWARE.DOC- Notes on the looseware concept."
  130. print
  131. print
  132. print "Press any key to continue. ";
  133. gosub continue:
  134. cls
  135. print "START.ASI- The ASIC source code for START.COM."
  136. print
  137. print "START.COM- The file you're using right now."
  138. print
  139. print
  140. print "Press any key to return to the Main Options Menu. ";
  141. gosub continue:
  142. goto options:
  143.  
  144. rem Here is the routine for viewing text files on the screen.
  145.  
  146. readfile:
  147. cls
  148. print "To move forward in the file(s) you are about to view, press PgDn."
  149. print
  150. print "To move back, press PgUp."
  151. print
  152. print "To exit the file, press Esc."
  153. print
  154. print
  155. print "Press any key to see the menu of files."
  156. gosub continue:
  157. readmenu:
  158. cls
  159. print "Here are the files you can view:"
  160. print
  161. print
  162. print "A- DARKSCRN.BAS"
  163. print
  164. print "B- DISPLAY.BAS"
  165. print
  166. print "C- FILE-MAN.BAS"
  167. print
  168. print "D- FILE-MAN.DOC"
  169. print
  170. print "E- NOT IN USE"
  171. print
  172. print "F- LOOSWARE.DOC"
  173. print
  174. print "G- START.ASI"
  175. print
  176. print "Esc- Return to the Main Options Menu."
  177. print
  178. print
  179. print "Please press the key corresponding to your choice. ";
  180. gosub continue:
  181. if a$=b$ then options:
  182. print a$;
  183. if a$="g" then readstar:
  184. if a$="G" then readstar:
  185. if a$="f" then readloos:
  186. if a$="F" then readloos:
  187. if a$="e" then readmenu:
  188. if a$="E" then readmenu:
  189. if a$="d" then readfild:
  190. if a$="D" then readfild:
  191. if a$="c" then readfilb:
  192. if a$="C" then readfilb:
  193. if a$="b" then readdisb:
  194. if a$="B" then readdisb:
  195. if a$="a" then readdarb:
  196. if a$="A" then readdarb:
  197. goto readmenu:
  198.  
  199. readdarb:
  200. call ("list.com"," darkscrn.bas")
  201. goto readmenu:
  202. readdisb:
  203. call ("list.com"," display.bas")
  204. goto readmenu:
  205. readfilb:
  206. call ("list.com"," file-man.bas")
  207. goto readmenu:
  208. readfild:
  209. call ("list.com"," file-man.doc")
  210. goto readmenu:
  211. readloos:
  212. call ("list.com"," loosware.doc")
  213. goto readmenu:
  214. readstar:
  215. call ("list.com"," start.asi")
  216. goto readmenu:
  217.  
  218. rem Here is the routine for printing text files.
  219.  
  220. printdoc:
  221. cls
  222. print "Please ready your printer; press any key to see the menu of files. ";
  223. gosub continue:
  224.  
  225. printmen:
  226. cls
  227. print "Here are the files you can print:"
  228. print
  229. print
  230. print "A- DARKSCRN.BAS"
  231. print
  232. print "B- DISPLAY.BAS"
  233. print
  234. print "C- FILE-MAN.BAS"
  235. print
  236. print "D- FILE-MAN.DOC"
  237. print
  238. print "E- NOT IN USE"
  239. print
  240. print "F- LOOSWARE.DOC"
  241. print
  242. print "G- START.ASI"
  243. print
  244. print "Esc- Return to the Main Options Menu."
  245. print
  246. print
  247. print "Please press the key corresponding to your choice. ";
  248.  
  249. wait5:
  250. gosub continue:
  251. if a$=b$ then options:
  252. if a$="g" then printsta:
  253. if a$="G" then printsta:
  254. if a$="f" then printloo:
  255. if a$="F" then printloo:
  256. if a$="e" then printmen:
  257. if a$="E" then printmen:
  258. if a$="d" then printfid:
  259. if a$="D" then printfid:
  260. if a$="c" then printfib:
  261. if a$="C" then printfib:
  262. if a$="b" then printdib:
  263. if a$="B" then printdib:
  264. if a$="a" then printdab:
  265. if a$="A" then printdab:
  266. goto wait5:
  267.  
  268. printdab:
  269. file$="darkscrn.bas"
  270. gosub printfil:
  271. goto printmen:
  272.  
  273. printdib:
  274. file$="display.bas"
  275. gosub printfil:
  276. goto printmen:
  277.  
  278. printfib:
  279. file$="file-man.bas"
  280. gosub printfil:
  281. goto printmen:
  282.  
  283. printfid:
  284. file$="file-man.doc"
  285. gosub printfil:
  286. goto printmen:
  287.  
  288. printloo:
  289. file$="loosware.doc"
  290. gosub printfil:
  291. goto printmen:
  292.  
  293. printsta:
  294. file$="start.asi"
  295. gosub printfil:
  296. goto printmen:
  297.  
  298.  
  299. rem Here is the routine for printing a file.
  300.  
  301. printfil:
  302. cls
  303. f$=chr$(12)
  304. open "i",1,file$
  305.  
  306. if error=2 then
  307. print ""
  308. print ""
  309. print "File not found."
  310. print
  311. print
  312. print "Press any key to continue. ";
  313. gosub continue:
  314. close 1
  315. return
  316. endif
  317.  
  318. heading:
  319. cls
  320. print "Printing...";
  321. realfile$=ucase$(file$)
  322. color 0,7
  323. print realfile$
  324. color 7,0
  325. print
  326. print
  327. print "Press space bar to pause printing, or Esc to quit."
  328. print
  329. print
  330.  
  331. printmor:
  332. input# 1, line$ crlf
  333.  
  334. if error=96 then
  335. lprint line$
  336. goto blanklin:
  337. endif
  338.  
  339. contlprn:
  340. lprint line$
  341.  
  342. a$=inkey$
  343.  
  344. if a$=b$ then
  345. print "Printing has been terminated.  The printer may still have data in its"
  346. print "buffer.  If so, it will continue printing until the buffer is empty."
  347. print
  348. lprint f$
  349. close 1
  350. file$=""
  351. print "Press any key to continue. ";
  352. gosub continue:
  353. return
  354. endif
  355.  
  356. if a$=e$ then pause: else nopause:
  357.  
  358. pause:
  359.  
  360. print "Press any key to resume printing. ";
  361.  
  362. pausemor:
  363. a$=inkey$
  364. if a$="" then pausemor:
  365. a$=""
  366. goto heading:
  367.  
  368. nopause:
  369. if error=99 then eofp:
  370. goto printmor:
  371.  
  372. blanklin:
  373. input# 1, line$ crlf
  374. if line$="" then printmor: else contlprn:
  375.  
  376. eofp:
  377. lprint line$
  378. print "Finished."
  379. print
  380. close 1
  381. lprint f$
  382. print "Press any key to continue. ";
  383. gosub continue:
  384. return
  385.  
  386.  
  387. rem This is the end of the routine for printing text files.
  388.  
  389.  
  390. rem Here is the routine for shelling to DOS.
  391.  
  392. shell:
  393. cls
  394. print "On which drive is your COMMAND.COM (don't type the colon)? ";
  395. gosub continue:
  396. path1$=a$+":"
  397. path2$=path1$+"\"
  398. path3$=path2$+"command.com"
  399. cls
  400. print "Use the DOS command EXIT to return to START.COM."
  401. print
  402. call path3$,""
  403. goto options:
  404.  
  405. rem Here is the routine for changing to 40-column width.
  406.  
  407. option40:
  408. width 40
  409. print "You have the following options:"
  410. print
  411. print
  412. print "F1- View a list of the files on this"
  413. print "disk."
  414. print
  415. print "F2- View the text file of your choice,"
  416. print "on the screen."
  417. print
  418. print "F3- Print the text file of your"
  419. print "choice."
  420. print
  421. print "F4- Shell to DOS."
  422. print
  423. print "F5- Return to 80-column mode."
  424. print
  425. print "F6- See a list of the parameters you"
  426. print "use from the DOS prompt."
  427. print
  428. print "Esc- Return to DOS."
  429. print
  430. print
  431. print "Please press the key corresponding to"
  432. print "your choice. ";
  433.  
  434. wait2:
  435. gosub continue:
  436. if a$=b$ then finish:
  437. if extended=1 then rdext40:
  438. goto wait2:
  439.  
  440. rdext40:
  441. if a$=";" then listfl40:
  442. if a$="<" then rdfile40:
  443. if a$="=" then prfile40:
  444. if a$=">" then shell40:
  445. if a$="?" then width80:
  446. if a$="@" then help40:
  447. goto wait2:
  448.  
  449. rem Here is the routine for listing files in 40-column mode.
  450.  
  451. listfl40:
  452. width 40
  453. print "Here are the files on this disk:"
  454. print
  455. print
  456. print "DARKSCRN.BAS- The ApBASIC 1.7 source"
  457. print "code for DARKSCRN.EXE."
  458. print
  459. print "DARKSCRN.EXE- A screen blanker, used"
  460. print "from the DOS prompt."
  461. print
  462. print "DISPLAY.BAS- An ApBASIC module for"
  463. print "displaying a file on the screen."
  464. print
  465. print "FILE-MAN.BAS- The ApBASIC 1.7 source"
  466. print "code for FILE-MAN.EXE."
  467. print
  468. print "FILE-MAN.DOC- The documentation for"
  469. print "FILE-MAN.EXE."
  470. print
  471. print "FILE-MAN.EXE- The ApBASIC 1.7 File"
  472. print "Manager."
  473. print
  474. print
  475. print "Press any key to continue. ";
  476. gosub continue:
  477. cls
  478. print "LIST.COM- A neat utility by Vern"
  479. print "Buerg; displays files on the screen."
  480. print
  481. print "LOOSWARE.DOC- Notes on the looseware"
  482. print "concept."
  483. print
  484. print "START.ASI- The ASIC source code"
  485. print "for START.COM."
  486. print
  487. print "START.COM- The file you're using right"
  488. print "now."
  489. print
  490. print
  491. print "Press any key to return to the Main"
  492. print "Options Menu. ";
  493. gosub continue:
  494. goto option40:
  495.  
  496.  
  497. rem Here is the routine for viewing files on the screen in 40-column mode.
  498. rdfile40:
  499. width 40
  500. print "To move forward in the file(s) you are"
  501. print "about to view, press PgDn."
  502. print
  503. print "To move back, press PgUp."
  504. print
  505. print "To move to the side, use the arrow"
  506. print "keys."
  507. print
  508. print "To exit the document, press Esc."
  509. print
  510. print
  511. print "Press any key to see the menu of"
  512. print "files. ";
  513. gosub continue:
  514.  
  515. rdmenu40:
  516. cls
  517. print "Here are the files you can view:"
  518. print
  519. print "A- DARKSCRN.BAS"
  520. print
  521. print "B- DISPLAY.BAS"
  522. print
  523. print "C- FILE-MAN.BAS"
  524. print
  525. print "D- FILE-MAN.DOC"
  526. print
  527. print "E- NOT IN USE"
  528. print
  529. print "F- LOOSWARE.DOC"
  530. print
  531. print "G- START.ASI"
  532. print
  533. print "Esc- Return to the Main Options Menu."
  534. print
  535. print
  536. print "Please press the key corresponding to"
  537. print "your choice. ";
  538. gosub continue:
  539. if a$=b$ then option40:
  540. print a$;
  541. if a$="g" then rdstar40:
  542. if a$="G" then rdstar40:
  543. if a$="f" then rdloos40:
  544. if a$="F" then rdloos40:
  545. if a$="e" then rdmenu40:
  546. if a$="E" then rdmenu40:
  547. if a$="d" then rdfild40:
  548. if a$="D" then rdfild40:
  549. if a$="c" then rdfilb40:
  550. if a$="C" then rdfilb40:
  551. if a$="b" then rddisb40:
  552. if a$="B" then rddisb40:
  553. if a$="a" then rddarb40:
  554. if a$="A" then rddarb40:
  555. goto rdmenu40:
  556. rddarb40:
  557. call ("list.com"," darkscrn.bas")
  558. goto rdmenu40:
  559. rddisb40:
  560. call ("list.com"," display.bas")
  561. goto rdmenu40:
  562. rdfilb40:
  563. call ("list.com"," file-man.bas")
  564. goto rdmenu40:
  565. rdfild40:
  566. call ("list.com"," file-man.doc")
  567. goto rdmenu40:
  568. rdloos40:
  569. call ("list.com"," loosware.doc")
  570. goto rdmenu40:
  571. rdstar40:
  572. call ("list.com"," start.asi")
  573. goto rdmenu40:
  574.  
  575.  
  576. rem Here is the routine for printing files from the 40-column menu.
  577.  
  578. prfile40:
  579. width 40
  580. print "Please ready your printer; press any"
  581. print "key to see the menu of files. ";
  582. gosub continue:
  583.  
  584. prmenu40:
  585. cls
  586. print "Here are the files you can print:"
  587. print
  588. print
  589. print "A- DARKSCRN.BAS"
  590. print
  591. print "B- DISPLAY.BAS"
  592. print
  593. print "C- FILE-MAN.BAS"
  594. print
  595. print "D- FILE-MAN.DOC"
  596. print
  597. print "E- NOT IN USE"
  598. print
  599. print "F- LOOSWARE.DOC"
  600. print
  601. print "G- START.ASI"
  602. print
  603. print "Esc- Return to the Main Options Menu."
  604. print
  605. print
  606. print "Please press the key corresponding to"
  607. print "your choice. ";
  608.  
  609. wait6:
  610. gosub continue:
  611. if a$=b$ then option40:
  612. if a$="g" then prstar40:
  613. if a$="G" then prstar40:
  614. if a$="f" then prloos40:
  615. if a$="F" then prloos40:
  616. if a$="e" then prmenu40:
  617. if a$="E" then prmenu40:
  618. if a$="d" then prfild40:
  619. if a$="D" then prfild40:
  620. if a$="c" then prfilb40:
  621. if a$="C" then prfilb40:
  622. if a$="b" then prdisb40:
  623. if a$="B" then prdisb40:
  624. if a$="a" then prdarb40:
  625. if a$="A" then prdarb40:
  626. goto wait6:
  627.  
  628. prdarb40:
  629. file$="darkscrn.bas"
  630. gosub prndoc40:
  631. goto prmenu40:
  632.  
  633. prdisb40:
  634. file$="display.bas"
  635. gosub prndoc40:
  636. goto prmenu40:
  637.  
  638. prfilb40:
  639. file$="file-man.bas"
  640. gosub prndoc40:
  641. goto prmenu40:
  642.  
  643. prfild40:
  644. file$="file-man.doc"
  645. gosub prndoc40:
  646. goto prmenu40:
  647.  
  648. prloos40:
  649. file$="loosware.doc"
  650. gosub prndoc40:
  651. goto prmenu40:
  652.  
  653. prstar40:
  654. file$="start.asi"
  655. gosub prndoc40:
  656. goto prmenu40:
  657.  
  658.  
  659. rem Here is the routine for printing a file in 40-column mode.
  660.  
  661. prndoc40:
  662. cls
  663. f$=chr$(12)
  664. open "i",1,file$
  665.  
  666. if error=2 then
  667. print ""
  668. print ""
  669. print "File not found."
  670. print
  671. print
  672. print "Press any key to continue. ";
  673. gosub continue:
  674. close 1
  675. return
  676. endif
  677.  
  678. headng40:
  679. cls
  680. print "Printing...";
  681. realfile$=ucase$(file$)
  682. color 0,7
  683. print realfile$
  684. color 7,0
  685. print
  686. print
  687. print "Press space bar to pause printing, or"
  688. print "Esc to quit."
  689. print
  690. print
  691.  
  692. prntmr40:
  693. input# 1, line$ crlf
  694.  
  695. if error=96 then
  696. lprint line$
  697. goto blnkln40:
  698. endif
  699.  
  700. contpr40:
  701. lprint line$
  702.  
  703. a$=inkey$
  704.  
  705. if a$=b$ then
  706. print "Printing has been terminated.  The"
  707. print "printer may still have data in its"
  708. print "buffer.  If so, it will continue"
  709. print "printing until the buffer is empty."
  710. print
  711. lprint f$
  712. close 1
  713. file$=""
  714. print "Press any key to continue. ";
  715. gosub continue:
  716. return
  717. endif
  718.  
  719. if a$=e$ then pause40: else nopaus40:
  720.  
  721. pause40:
  722.  
  723. print "Press any key to resume printing. ";
  724.  
  725. pausmr40:
  726. a$=inkey$
  727. if a$="" then pausmr40:
  728. a$=""
  729. goto headng40:
  730.  
  731. nopaus40:
  732. if error=99 then eofp40:
  733. goto prntmr40:
  734.  
  735. blnkln40:
  736. input# 1, line$ crlf
  737. if line$="" then prntmr40: else contpr40:
  738.  
  739. eofp40:
  740. lprint line$
  741. print "Finished."
  742. print
  743. close 1
  744. lprint f$
  745. print "Press any key to continue. ";
  746. gosub continue:
  747. return
  748.  
  749. rem This is the end of the routine for printing a file in 40-column mode.
  750. rem Here is the routine for shelling to DOS in 40-column mode.
  751.  
  752. shell40:
  753. width 40
  754. print "On which drive is your COMMAND.COM?"
  755. print "(Don't type the colon.) ";
  756. gosub continue:
  757. path1$=a$+":"
  758. path2$=path1$+"\"
  759. path3$=path2$+"command.com"
  760. cls
  761. print "Use the DOS command EXIT to return to"
  762. print "START.COM."
  763. print
  764. call path3$,""
  765. goto option40:
  766.  
  767. rem Here is the routine for returning to 80-column mode.
  768. width80:
  769. width 80
  770. goto options:
  771.  
  772. rem Here is the routine for listing the parameters for 40-column mode.
  773. help40:
  774. width 40
  775. print "You can use parameters with START.COM;"
  776. print "they may save you some time."
  777. print
  778. print "These screens deal with parameters"
  779. print "used in 40-column mode; to see a list"
  780. print "of parameters for 80-column mode,"
  781. print "select that option from the 80-column"
  782. print "menu, or type START /? from DOS."
  783. print
  784. print ""
  785. print "Typing START /40 will put you into"
  786. print "40-column mode (you're using it now)."
  787. print
  788. print "Typing START /40 ? will give you these"
  789. print "help screens."
  790. print
  791. print "Typing START /40 V will let you view a"
  792. print "list of the files on this disk."
  793. print
  794. print "Typing START /40 R will let you read"
  795. print "your file of choice, on the screen."
  796. print
  797. print
  798. print "Press any key to continue. ";
  799. gosub continue:
  800. cls
  801. print "Typing START /40 P will let you print"
  802. print "the file of your choice."
  803. print
  804. print "Either upper or lower case is fine."
  805. print
  806. print
  807. print "Do you want to ";
  808. color 0,15
  809. print "C";
  810. color 7,0
  811. print "ontinue with START.COM"
  812. print "or return to ";
  813. color 0,15
  814. print "D";
  815. color 7,0
  816. print "OS? ";
  817.  
  818. wait3:
  819. gosub continue:
  820. if a$="c" then option40:
  821. if a$="C" then option40:
  822. if a$="d" then finish:
  823. if a$="D" then finish:
  824. goto wait3:
  825.  
  826. rem Here is the routine for showing the parameters that can be used in 80-
  827. rem column mode.
  828.  
  829. help:
  830. cls
  831. print "You can use parameters with START.COM; they may save you time."
  832. print
  833. print "This screen describes the parameters you can use in 80-column mode; to"
  834. print "see the list of parameters for 40-column mode, choose that option from"
  835. print "the 40-column menu, or type START /40 ? from the DOS prompt."
  836. print
  837. print
  838. print "Typing START /? from the DOS prompt will get you this screen."
  839. print
  840. print "Typing START /V will let you view a list of the files on this disk."
  841. print
  842. print "Typing START /R will let you read the text file of your choice, on the"
  843. print "screen."
  844. print
  845. print "Typing START /P will let you print the text file of your choice."
  846. print
  847. print "Either upper or lower case is fine."
  848. print
  849. print
  850. print "Do you want to ";
  851. color 0,15
  852. print "C";
  853. color 7,0
  854. print "ontinue with START.COM or return to ";
  855. color 0,15
  856. print "D";
  857. color 7,0
  858. print "OS? ";
  859.  
  860. wait4:
  861. gosub continue:
  862. if a$="c" then options:
  863. if a$="C" then options:
  864. if a$="d" then finish:
  865. if a$="D" then finish:
  866. goto wait4:
  867.  
  868. rem Here is the routine for giving the address for donations.
  869.  
  870. donation:
  871. cls
  872. print "You can send donations to:"
  873. print
  874. print
  875. print "Matt Roberts"
  876. print "3 Cedar St., # 8"
  877. print "Montpelier, Vt 05602-3006"
  878. print
  879. print
  880. print "Thanks."
  881. print
  882. print
  883. end
  884.  
  885. rem Here is the donations routine in 40-column mode.
  886.  
  887. donate40:
  888. width 40
  889. print "You can send donations to:"
  890. print
  891. print
  892. print "Matt Roberts"
  893. print "3 Cedar St., # 8"
  894. print "Montpelier, Vt 05602-3006"
  895. print
  896. print
  897. print "Thanks."
  898. print
  899. print
  900. end
  901.  
  902. rem Here is the routine for waiting for the user to press a key.
  903.  
  904. continue:
  905. wait:
  906. a$=inkey$
  907. if a$="" then wait:
  908. return
  909.  
  910. rem Here is the routine for ending the program.
  911.  
  912. finish:
  913. cls
  914. end
  915.